/*
 * MouseEvent.h
 *
 *  Created on: 2009/01/18
 *      Author: elecgon
 */

#ifndef MOUSEEVENT_H_
#define MOUSEEVENT_H_

#ifndef EVENT_H_
#	include "Event.h"
#endif

class MouseEvent: public Event
{
public:
	static const uint32 ON_LBUTTON_UP		= 0x0f0001;
	static const uint32 ON_LBUTTON_DOWN		= 0x0f0002;
	static const uint32 ON_CBUTTON_UP		= 0x0f0003;
	static const uint32 ON_CBUTTON_DOWN		= 0x0f0004;
	static const uint32 ON_RBUTTON_UP		= 0x0f0005;
	static const uint32 ON_RBUTTON_DOWN		= 0x0f0006;

	static const uint32 ON_MOUSE_MOVE		= 0x0f0007;

public:
	MouseEvent(const uint32 type, EventDispatcher* target, uint16 flags = 0, uint16 x = 0, uint16 y = 0);
	virtual ~MouseEvent();

public:
	const int16 getX() const { return mX; }
	void setX(const uint16 x) { mX = x;}

	const int16 getY() const { return mY; }
	void setY(const uint16 y) { mY = y; }

	const int16 getFlags() const { return mFlags; }
	void setFlags(const int16 flags) { mFlags = flags; }

private:
	int16	mFlags;
	int16	mX;
	int16	mY;
};

#endif /* MOUSEEVENT_H_ */
